package flyweighgt_pattern.ex2;

/**
 * 治愈药水类，具体享元（Flyweight）实现。
 * 该类实现了 Potion 接口，提供药水的具体行为。
 *
 * @author 申书航
 * @version 1.0
 */
public class HealingPotion implements Potion {

    /**
     * 喝药水的方法，增加炼金术师的生命值。
     *
     * @param alchemist 需要喝药水的炼金术师对象
     */
    @Override
    public void drink(Alchemist alchemist) {
        // 增加100点生命值
        alchemist.setHp(alchemist.getHp() + 100);
        System.out.println("恢复100点生命值！");
        System.out.println(alchemist.getName() + System.identityHashCode(this));
    }

    /**
     * 卖药水的方法，输出药水的售价。
     *
     * @param price 药水的价格
     */
    @Override
    public void sell(int price) {
        System.out.println("卖出一瓶治愈药水，价格：" + price + "元。");
    }
}
